package com.authenticateCenter.domain.entity.util;

import lombok.SneakyThrows;

import java.lang.reflect.Field;

/**
 * 针对当前业务场景提炼出来的对象属性操作工具类
 * @author 大忽悠
 * @create 2022/10/19 20:07
 */
public class EntityUtil {

    /**
     * 如果字段获取失败,也确保不影响正常业务流程
     * @param obj
     * @param <T>
     */
    @SneakyThrows
    public static <T> void enabledCheck(T obj){
        Field enabled = obj.getClass().getDeclaredField("enabled");
        enabled.setAccessible(true);
        Integer enabledVal = (Integer) enabled.get(obj);
        //如果enabled范围非法,那么设置为NULL,数据库采用默认值1填充
        if(enabledVal==null || enabledVal<0 || enabledVal>1){
            enabled.set(obj,null);
        }
    }
}
